import http from '/util/http';
import Config from '/util/config';
import * as Utils from '/util/util';

const WuzhuUtil = {
  userInfo: {},
};
export default WuzhuUtil;

// 该部分主要是针对关于费用展示，以及时间展示逻辑进行抽取便于统一管理
// 获取费用统一的描述，针对费用详情
export function getFeeDescStr(feeItem) {
  let feeAccessWay = feeItem['feeAccessWay'];
  let feeName = feeItem['feeName'];
  let feeCalcRadices = feeItem['feeCalcRadices'];
  let feeAccessWayConfig = feeItem['feeAccessWayConfig'];
  let ItemName = feeName;
  switch (feeAccessWay) {
    case '001': {
      // 固定金额
      ItemName = '￥' + parseFloat(feeAccessWayConfig).toFixed(2);
      break;
    }
    case '002': {
      // 按天计算
      let strs = [];
      strs = feeAccessWayConfig.split(',');
      if (strs.length < 2) {
        ItemName = '￥' + strs[0] + '/' + '天';
      } else {
        ItemName = '￥' + strs[1] + '/' + strs[0] + '天';
      }
      break;
    }
    case '003': {
      // 固定比率
      ItemName = feeAccessWayConfig + '% * ' + '(' + feeCalcRadices + ')';
      break;
    }
    default: {
      break;
    }
  }
  return ItemName;
}

// 入参： 传入的是date 返回格式为 2018/5/18 格式的日期
export function getTimerStr(date) {
  let year = date.getFullYear();
  let mouth = date.getMonth() + 1;
  let day = date.getDate();
  if (year < 10) {
    year = '0' + year;
  }
  if (mouth < 10) {
    mouth = '0' + mouth;
  }
  if (day < 10) {
    day = '0' + day;
  }
  let tempStr = year + '/' + mouth + '/' + day;
  return tempStr;
}

// 入参： 传入的是 2018-5-18 00:00:00 格式的日期  返回格式为 2018.05.18格式的日期
export function getTimerDotStrWithTimeStr(timeStr) {
  // 注意当timeStr为null的时候，所以注意先后顺序
  if (timeStr === undefined || timeStr === null || timeStr.length === 0) {
    return '--';
  }
  // 搞定safari里面问题，将-替换成/再转换 / 表示正则 /g 表示全部
  let newTimeStr = timeStr.replace(/-/g, '/');
  // 注意date的单位需要转化成ms数进行计算
  let date = new Date(newTimeStr);
  let year = date.getFullYear();
  let mouth = date.getMonth() + 1;
  let day = date.getDate();
  if (year < 10) {
    year = '0' + year;
  }
  if (mouth < 10) {
    mouth = '0' + mouth;
  }
  if (day < 10) {
    day = '0' + day;
  }
  let tempStr = year + '.' + mouth + '.' + day;
  return tempStr;
}

// 入参： 传入的是 long类型 s数 返回格式为 2018.5.18 格式的日期
export function getTimerDotStr(slong) {
  if (slong === 0 || slong === null) {
    return '--';
  }
  // 注意date的单位需要转化成ms数进行计算
  let date = new Date(slong * 1000);
  let year = date.getFullYear();
  let mouth = date.getMonth() + 1;
  let day = date.getDate();
  if (year < 10) {
    year = '0' + year;
  }
  if (mouth < 10) {
    mouth = '0' + mouth;
  }
  if (day < 10) {
    day = '0' + day;
  }
  let tempStr = year + '.' + mouth + '.' + day;
  return tempStr;
}

// 将后台返回的试算转成需要的试算列表
// 入参:后台返回的试算数据
export function getTrailTableList(mapData) {
  let table = [];
  if (mapData !== undefined && mapData instanceof Object) {
    for (let x in mapData) {
      let tempArray = mapData[x];
      let totalMoney = 0;
      let OwingMonty = 0;
      let subTermItem = tempArray[0];
      for (let j = 0; j < tempArray.length; j++) {
        let tempItem = tempArray[j];
        // 判断下费用类型是否为空，为空就展示成租金
        let feeTypeCode = tempItem && tempItem['feeTypeCode'];
        if (feeTypeCode === null) {
          tempItem['feeName'] = '租金';
        }
        totalMoney = totalMoney + tempItem['payAmt'];
      }
      // let starDate = new Date(subTermItem['termStartDayLong'])
      // let termDays = parseInt(subTermItem['termDays'])
      // // let endDate = new Date(subTermItem['payDayLong'])
      // let endDateLong = subTermItem['termStartDayLong'] + termDays * 24 * 3600 * 1000
      // let endDate = new Date(endDateLong)
      // let termStartDate = this.getTimerStr(starDate)
      // let payStrDate = this.getTimerStr(endDate)
      let starDate = new Date(subTermItem['termStartDayLong']);
      let endDate = new Date(subTermItem['termEndDayLong']);
      let termStartDate = getTimerStr(starDate);
      let payStrDate = getTimerStr(endDate);
      // 获取对应的时间
      table.push({
        term: subTermItem.term, // 第几期
        termStartDate: termStartDate, // 应付款日期
        payDate: payStrDate, // 付款时间
        delayPayDate: subTermItem.delayPayDate,
        termDays: subTermItem.termDays, //  改天的期数
        totalMoney: totalMoney, //  总金额
        OwingMonty: OwingMonty, //  欠费的钱
        paymentStatus: subTermItem.paymentStatus,
        selected: false,
        Array: tempArray,
      });
    }
  }
  return table;
}

// 抽取出来支付方式判断的逻辑
// 后台返回的字符方式字符串  '0,1' 这样的
// 0 表示分期  1 表示一次性支出   2表示一次性支付或者分期支付 3 后台没有返回对应的字段
// 返回的类型为num类型
export function getPayStayleEnum(actualRentPayStyle) {
  if (actualRentPayStyle === null || actualRentPayStyle === undefined) {
    return 3;
  }
  let letter1 = actualRentPayStyle.indexOf('1') !== -1; // 一次性支付
  let letter0 = actualRentPayStyle.indexOf('0') !== -1; //  按月支付
  if (letter1 && letter0) {
    return 2;
  } else if (letter1 && !letter0) {
    return 1;
  } else if (!letter1 && letter0) {
    return 0;
  } else {
    return 3;
  }
}

// 获取具体的租赁方式 '0,1' 一次性支付还是分期支付，如果二者都存在那么表示分期或者一次性支付
// 0 表示分期  1 表示一次性支出   2表示一次性支付或者分期支付 3 后台没有返回对应的字段
// export function getLeaseStyleDesc(actualRentPayStyle) {
//   let payStyle = getPayStayleEnum(actualRentPayStyle);
//   let payDesc = '';
//   switch (payStyle) {
//     case 0: {
//       // 0 表示分期
//       payDesc = '按月支付';
//       break;
//     }
//     case 1: {
//       // 1 表示一次性支出
//       payDesc = '一次性支付';
//       break;
//     }
//     case 2: {
//       //  2表示一次性支付或者分期支付
//       payDesc = '按月支付或一次性支付';
//       break;
//     }
//     default:
//       break;
//   }
//   return payDesc;
// }

export function uploadThirdInterfaceLog(params) {
  return new Promise(function(resolve, reject) {
    http
      .post('commonRecord/saveParty', params)
      .then(res => {
        console.log('uploadInterfaceLog res = ' + JSON.stringify(res));
        resolve(res);
      })
      .catch(err => {
        console.log('uploadInterfaceLog err = ' + JSON.stringify(err));
        reject(err);
      });
  });
}

// 跳转到小程序
export function goToMiniProgram(aliMiniStr) {
  try {
    let aliMini = JSON.parse(aliMiniStr);
    let path = aliMini.path;
    console.log('aliMiniStr = ' + aliMiniStr);
    console.log('aliMini.appId = ' + aliMini.appId);
    console.log('aliMini.path = ' + aliMini.path);
    console.log('aliMini.extraData = ' + aliMini.extraData);
    my.navigateToMiniProgram({
      appId: aliMini.appId, // 要跳转的目标小程序appId
      path: path, // 打开的页面路径，如果为空则打开首页
      extraData: aliMini.extraData, // 需要传递给目标小程序的数据
      success: res => {
        console.log('navigateToMiniProgram ok.' + JSON.stringify(res));
      },
      fail: res => {
        let opt = {
          uniqueIdenty: 'navigateToAliMiniProgram',
          type: '18',
          requestParam: JSON.stringify(aliMini),
          responseParam: JSON.stringify(res),
          status: '2', // 状态：1成功2失败
          logSource: '0', // 请求发起来源 0:前端发起；1=后端发起
        };
        uploadThirdInterfaceLog(opt);
        console.log('navigateToMiniProgram fail.' + JSON.stringify(res));
      },
    });
  } catch (error) {
    console.log('navigateToMiniProgram error.' + JSON.stringify(error));
  }
}

// 跳转到首页
export function gotoIndex(app, from) {
  // 修改返回首页的方式。从外部链接直接进入详情,用navigateBack方法会无法返回首页
  let currentPages = getCurrentPages().length;
  console.log('gotoIndex currentPages = ' + currentPages);
  if (currentPages <= 1) {
    my.reLaunch({
      url: '/pages/index/index',
    });
  } else {
    my.switchTab({
      url: '/pages/index/index',
    });
    let obj = createTrackEventOtherObj(from);
    uTrackEvent(app, trackEventEnum['home-entry'], obj);
  }
}

// ***********************************
// 友盟+自定义埋点事件 START
// ***********************************
// 事件枚举
export const trackEventEnum = {
  // 首页
  'home-clickGoodsType': {
    id: 'home-clickGoodsType-v1',
    name: '首页点击商品类型',
  },
  'home-clickBanner': {
    id: 'home-clickBanner-v1',
    name: '首页点击顶部banner',
  },
  'home-clickActivityBanner': {
    id: 'home-clickActivityBanner-v1',
    name: '首页点击活动banner',
  },
  'home-clickActivityGoods': {
    id: 'home-clickActivityGoods-v1',
    name: '首页点击活动商品',
  },
  'home-clickBusinessEntry': {
    id: 'home-clickBusinessEntry-v1',
    name: '首页点击业务入口',
  },
  'home-clickFloorBanner': {
    id: 'home-clickFloorBanner-v1',
    name: '首页点击楼层banner',
  },
  'home-clickFloorGoods': {
    id: 'home-clickFloorGoods-v1',
    name: '首页点击楼层商品',
  },
  'home-clickBottomBanner': {
    id: 'home-clickBottomBanner-v1',
    name: '首页点击底部banner',
  },
  'home-clickCustomerService': {
    id: 'home-clickCustomerService-v1',
    name: '首页点击客服',
  },
  // 1.点击店铺等功能按钮到首页,2.客户访问的第一个页面是首页
  'home-entry': {
    id: 'home-entry-v1',
    name: '进入首页',
  },

  // 商品列表页
  'goodsList-clickGoodsType': {
    id: 'goodsList-clickGoodsType-v1',
    name: '商品列表页点击商品类型',
  },
  'goodsList-clickGoods': {
    id: 'goodsList-clickGoods-v1',
    name: '商品列表页点击商品',
  },
  'goodsList-entry': {
    id: 'goodsList-entry-v1',
    name: '进入商品列表页',
  },

  // 商品详情页
  'goodsDetail-clickTab': {
    id: 'goodsDetail-clickTab-v1',
    name: '商品详情页点击租赁说明商品详情售后说明tap',
  },
  'goodsDetail-clickRentPopup': {
    id: 'goodsDetail-clickRentPopup-v1',
    name: '商品详情页点击立即租赁',
  },
  'goodsDetail-clickCustomerService': {
    id: 'goodsDetail-clickCustomerService-v1',
    name: '商品详情页点击客服',
  },
  'goodsDetail-clickBuyoutTips': {
    id: 'goodsDetail-clickBuyoutTips-v1',
    name: '商品详情页点击买断尾款说明',
  },
  'goodsDetail-clickFeeTips': {
    id: 'goodsDetail-clickFeeTips-v1',
    name: '商品详情页点击费用说明',
  },
  'goodsDetail-clickConfirm': {
    id: 'goodsDetail-clickConfirm-v1',
    name: '商品详情页点击确定下单',
  },
  'goodsDetail-clickRecommendIndex': {
    id: 'goodsDetail-clickRecommendIndex-v1',
    name: '商品详情页点击热门推荐中首页',
  },
  'goodsDetail-clickRecommendGoods': {
    id: 'goodsDetail-clickRecommendGoods-v1',
    name: '商品详情页点击热门推荐中商品',
  },
  'goodsDetail-clickReceiveCoupon': {
    id: 'goodsDetail-clickReceiveCoupon-v1',
    name: '商品详情页点击领券',
  },
  'goodsDetail-clickActivity': {
    id: 'goodsDetail-clickActivity-v1',
    name: '商品详情页点击活动',
  },
  'goodsDetail-clickQuestionBranch': {
    id: 'goodsDetail-clickQuestionBranch-v1',
    name: '商品详情页点击常见问答tap页下分支问题',
  },
  'goodsDetail-clickShop': {
    id: 'goodsDetail-clickShop-v1',
    name: '商品详情页点击店铺',
  },
  'goodsDetail-clickLeadFlow': {
    id: 'goodsDetail-clickLeadFlow-v1',
    name: '商品详情页点击引流文字',
  },
  'goodsDetail-clickRecommendAllGoods': {
    id: 'goodsDetail-clickRecommendAllGoods-v1',
    name: '商品详情页点击热门推荐中全部商品',
  },
  'goodsDetail-clickGuarantee': {
    id: 'goodsDetail-clickGuarantee-v1',
    name: '商品详情页点击查看品牌保障',
  },
  'goodsDetail-entry': {
    id: 'goodsDetail-entry-v1',
    name: '进入商品详情页',
  },
  'goodsDetail-clickOnlineConsultation': {
    id: 'goodsDetail-clickOnlineConsultation-v1',
    name: '商品详情页点击在线咨询',
  },
  'goodsDetail-clickCustomerServicePhone': {
    id: 'goodsDetail-clickCustomerServicePhone-v1',
    name: '商品详情页点击客服电话',
  },
  'goodsDetail-showServiceConsultationDialog': {
    id: 'goodsDetail-showServiceConsultationDialog-v1',
    name: '点击客服显示在线咨询和客服电话弹出框',
  },
  'goodsDetail-gotoHelpCenter': {
    id: 'goodsDetail-gotoHelpCenter-v1',
    name: '商品详情页查看所有问题',
  },
  'goodsDetail-clickQuestionConcerned': {
    id: 'goodsDetail-clickQuestionConcerned-v1',
    name: '商品详情页点击大家关心问题下分支问题',
  },

  // 我的页面
  'mine-clickOrder': {
    id: 'mine-clickOrder-v1',
    name: '我的页面点击订单',
  },
  'mine-clickCoupons': {
    id: 'mine-clickCoupons-v1',
    name: '我的页面点击优惠券',
  },
  'mine-clickInviteFriends': {
    id: 'mine-clickInviteFriends-v1',
    name: '我的页面点击邀请好友',
  },
  'mine-clickHelpCenter': {
    id: 'mine-clickHelpCenter-v1',
    name: '我的页面点击帮助中心',
  },
  'mine-clickCustomerService': {
    id: 'mine-clickCustomerService-v1',
    name: '我的页面点击客服',
  },
  'mine-clickCustomerServicePhone': {
    id: 'mine-clickCustomerServicePhone-v1',
    name: '我的页面点击客服电话',
  },

  // 底部导航
  'navigation-clickHomePage': {
    id: 'navigation-clickHomePage-v1',
    name: '底部导航点击首页',
  },
  'navigation-clickGoodsListPage': {
    id: 'navigation-clickGoodsListPage-v1',
    name: '底部导航点击商品分类',
  },
  'navigation-clickMinePage': {
    id: 'navigation-clickMinePage-v1',
    name: '底部导航点击我的',
  },

  // 订单提交页面
  'orderSubmit-entry': {
    id: 'orderSubmit-entry-v1',
    name: '进入确认订单页',
  },
  'orderSubmit-clickSubmit': {
    id: 'orderSubmit-clickSubmit-v1',
    name: '确认订单页面点击提交',
  },
  'orderSubmit-closeVerify': {
    id: 'orderSubmit-closeVerify-v1',
    name: '确认订单页面关闭安全验证',
  },
  'orderSubmit-submitVerify': {
    id: 'orderSubmit-submitVerify-v1',
    name: '确认订单页面提交安全验证',
  },
  'orderSubmit-verifySucc': {
    id: 'orderSubmit-verifySucc-v1',
    name: '确认订单页面安全验证成功',
  },
  'orderSubmit-verifyFail': {
    id: 'orderSubmit-verifyFail-v1',
    name: '确认订单页面安全验证失败',
  },
  // 完善个人信息页面
  'editReceivingInfo-entry': {
    id: 'editReceivingInfo-entry-v1',
    name: '进入完善个人信息页面',
  },
  // 订单结果页面
  'orderResult-entry': {
    id: 'orderResult-entry-v1',
    name: '进入下单结果页',
  },
  'orderResult-clickBackHome': {
    id: 'orderResult-clickBackHome-v1',
    name: '下单结果页点击返回首页',
  },
  // added by hf 2019-10-21 将下单成功的事件独立出来
  'orderResult-success': {
    id: 'orderResult-success-v1',
    name: '进入下单结果页-成功',
  },

  // added by hf 2019-8-23 迭代2.26.0
  // 归还页面
  'goodsReturn-submit': {
    id: 'goodsReturn-submit-v1',
    name: '归还页点击确定按钮',
  },
  'goodsReturn-viewHtml': {
    // other区分锁屏及退号、归还须知
    id: 'goodsReturn-viewHtml-v1',
    name: '归还页查看落地页',
  },
  'goodsReturn-clickCustomerService': {
    // other区分锁屏密码及锁屏落地页中的联系客服的点击
    id: 'goodsReturn-clickCustomerService-v1',
    name: '归还页归还须知及清除锁屏密码及退出账号中点击联系客服按钮',
  },
  'goodsReturn-clickProtocol': {
    // 归还须知合同点击
    id: 'goodsReturn-clickProtocol-v1',
    name: '归还页点击归还须知页面的合同',
  },

  // 活动模板（活动详情）页
  'promotionDetail-entry': {
    id: 'promotionDetail-entry-v1',
    name: '进入活动模板页',
  },
  'promotionDetail-clickAll': {
    id: 'promotionDetail-clickAll-v1',
    name: '活动模板页点击一键领取',
  },
  'promotionDetail-clickPromotionGoods': {
    id: 'promotionDetail-clickPromotionGoods-v1',
    name: '活动模板页点击商品',
  },
  'promotionDetail-clickGetMore': {
    id: 'promotionDetail-clickGetMore-v1',
    name: '活动模板页点击选购更多',
  },

  // 订单详情页
  'orderDetail-clickCancel': {
    id: 'orderDetail-clickCancel-v1',
    name: '订单详情页点击取消订单',
  },
  'orderDetail-clickCancelPopButton': {
    id: 'orderDetail-clickCancelPopButton-v1',
    name: '订单详情页取消弹窗选择是或否',
  },

  // 取消订单页
  'cancelOrder-entry': {
    id: 'cancelOrder-entry-v1',
    name: '进入取消订单页',
  },
  'cancelOrder-clickSubmit': {
    id: 'cancelOrder-clickSubmit-v1',
    name: '取消订单页点击提交',
  },
  'cancelOrder-cancelResult': {
    // 记录取消的弹窗类型
    id: 'cancelOrder-cancelResult-v1',
    name: '取消订单页取消结果统计',
  },
  'cancelOrder-exit': {
    // 记录'我再想想'
    id: 'cancelOrder-exit-v1',
    name: '取消订单页退出',
  },
  // 寄回页面
  'sendBack-submit': {
    id: 'sendBack-submit-v1',
    name: '寄回页点击确定按钮',
  },
};
// 创建跟踪事件-商品对象
export function createTrackEventGoodsObj(
  eventType,
  clickUrl,
  categoryCode,
  goodsName,
  goodsType,
  goodsTypeName,
  gotoUrl,
  other,
  orderNo,
) {
  let obj = {
    eventType: eventType || 'other', // 事件类型：goodsDetail-查看商品详情，goodsType-商品类型，url-跳转其他链接，aliMiniProgram-跳转小程序，other-其他
    clickUrl: clickUrl || '', // 点击链接
    categoryCode: categoryCode || '', // 品类编码
    goodsName: goodsName || '', // 商品名称
    goodsType: goodsType || '', // 商品类型
    goodsTypeName: goodsTypeName || '', // 商品类型名称
    gotoUrl: gotoUrl || '', // 跳转链接
    other: other || '', // 其他事件内容
    orderNo: orderNo || '',
  };
  return obj;
}
// 创建跟踪事件-其他事件对象
export function createTrackEventOtherObj(other, orderNo) {
  let obj = {
    eventType: 'other',
    clickUrl: '', // 点击链接
    categoryCode: '', // 品类编码
    goodsName: '', // 商品名称
    goodsType: '', // 商品类型
    goodsTypeName: '', // 商品类型名称
    gotoUrl: '', // 跳转链接
    other: other || '', // 其他事件内容
    orderNo: orderNo || '',
  };
  return obj;
}
/* trackEvent
category - 事件分类，如首页、商品详情等
         首页 - homePage
         商品列表页 - goodsListPage
         商品详情页 - goodsDetailPage
         我的页面 - minePage
         底部导航 - navigation
         确认订单页 - orderSubmit
         下单结果页 - orderResult
action - 事件行为，如点击首页banner、点击商品列表的商品查看其详情等
          首页：
            点击商品类型 - clickGoodsType
            点击顶部banner - clickBanner
            点击活动banner - clickActivityBanner
            点击活动商品 - clickActivityGoods
            点击业务入口 - clickBusinessEntry
            点击楼层banner - clickFloorBanner
            点击楼层商品 - clickFloorGoods
            点击推荐专题 - clickRecommend
            进入首页 - entry
          商品列表页：
            点击商品类型 - clickGoodsType
            点击商品 - clickGoods
            进入商品列表页 - entry
          商品详情页：
            点击租赁说明图文详情的tab - clickTab
            点击立即租赁弹窗 - clickRentPopup
            点击客服 - clickCustomerService
            点击买断尾款说明 - clickBuyoutTips
            点击费用说明 - clickFeeTips
            点击确定”下单 - clickConfirm
            点击热门推荐中首页 - clickRecommendIndex
            点击热门推荐中商品 - clickRecommendGoods
            点击领券 - clickReceiveCoupon
            点击常见问答tap页下分支问题 - clickQuestionBranch
            点击店铺 - clickShop

            进入商品详情页 - entry
            点击热门推荐中全部商品 - clickRecommendAllGoods
            点击查看品牌保障 - clickGuarantee
            点击在线咨询 - clickOnlineConsultation
            点击客服电话 - clickCustomerServicePhone
            点击客服显示在线咨询和客服电话弹出框 - showServiceConsultationDialog
          我的页面：
            点击订单 - clickOrder
            点击优惠券 - clickCoupons
            点击邀请好友 - clickInviteFriends
            点击帮助中心 - clickHelpCenter
          底部导航 -
            点击首页 - clickHomePage
            点击商品分类 - clickGoodsListPage
            点击我的 - clickMinePage
          确认订单 -
            进入确认订单页 - entdry
            点击提交 - clickSubmit
          确认订单 -
            进入下单结果页 - entry
            点击返回首页 - backHome
          后续新增事件详见：  trackEventEnum
name - 事件所有数据
          通用数据
            进单渠道 - channelNo
            客户ID - customerId
            客户姓名 - userName
            客户电话 - userPhone
            点击时间 - clickTime

          eventName - 事件名字：goodsDetail-查看商品详情，goodsType-商品类型，url-跳转其他链接，other-其他
          eventData - 事件个性数据
            点击链接 - clickUrl 一般是被点击图片的url
            品类编码 - categoryCode
            商品名称 - goodsName
            商品类型 - goodsType
            商品类型名称 - goodsTypeName
            跳转链接 - gotoUrl
            其他事件内容 - other: other
            订单号 - orderNo
*/
export function uTrackEvent(app, event, params) {
  // 2020-5-13 友盟已经暂停支付宝小程序的统计，等待后续升级
  return;
  // console.log('----------------------START----------------------');
  // console.log('uTrackEvent event = ' + JSON.stringify(event) + ', params = ' + JSON.stringify(params));
  // console.log('uTrackEvent app = ', app);
  // let obj = params;
  // obj.channelNo = app.channelNo; // 进单渠道
  // // console.log('uTrackEvent app.userInfo = ', app.userInfo);
  // if (app.userInfo && app.userInfo.customerId) {
  //   obj.customerId = app.userInfo.customerId; // 客户ID
  //   obj.userName = app.userInfo.userName; // 客户姓名
  //   obj.userPhone = app.userInfo.userPhone; // 客户电话
  //   // console.log('uTrackEvent app.userInfo = ', app.userInfo);
  // } else if (WuzhuUtil.userInfo && WuzhuUtil.userInfo.customerId) {
  //   obj.customerId = WuzhuUtil.userInfo.customerId; // 客户ID
  //   obj.userName = WuzhuUtil.userInfo.userName; // 客户姓名
  //   obj.userPhone = WuzhuUtil.userInfo.userPhone; // 客户电话
  //   // console.log('uTrackEvent WuzhuUtil.userInfo = ', WuzhuUtil.userInfo);
  // } else {
  //   let userInfo = my.getStorageSync({
  //     key: 'userInfo'
  //   });
  //   // console.log('uTrackEvent userInfo = ', userInfo);
  //   if (userInfo && userInfo.data) {
  //     let tmpData = userInfo.data;
  //     obj.customerId = tmpData.customerId; // 客户ID
  //     obj.userName = tmpData.userName; // 客户姓名
  //     obj.userPhone = tmpData.userPhone; // 客户电话
  //     WuzhuUtil.userInfo = userInfo.data;
  //   } else {
  //     obj.customerId = ''; // 客户ID
  //     obj.userName = ''; // 客户姓名
  //     obj.userPhone = ''; // 客户电话
  //   }
  // }
  // obj.clickTime = new Date().Format('yyyy-MM-dd hh:mm:ss');
  // obj.eventId = event.id;
  // obj.eventName = event.name; // 事件名字
  // obj.launchSource = http._source;
  // // obj.eventData = {} // 事件数据
  // // }

  // // if (name) {
  // //   obj.eventData = name;
  // // } else {
  // //   obj.eventData = createTrackEventGoodsObj();
  // // }
  // console.log('uTrackEvent obj = ', obj);
  // try {
  //   app.globalData.uma.trackEvent(event.id, obj);
  // } catch (error) {
  //   console.error(error);
  // }
  // console.log('----------------------END----------------------');
}
// ***********************************
// 友盟+自定义埋点事件 END
// ***********************************

// added by hf 2019-8-23 迭代2.26.0
// formId位置枚举
// 位置	  FORM ID
// 首页	   点击分类icon
//         点击首页banner
//         点击业务入口
//         点击楼层商品
//         点击楼层banner
// 商详页	  点击“选择商品规格”按钮
//         点击“确认商品，去评估”
//         点击优惠券
//         点击活动
//         点击品牌保障区域
//         点击热门推荐区域
//         点击tap页
//         点击客服按钮
// 商品列表页	点击商品
// 确认订单页	点击提交订单按钮
export const formLocationEnum = {
  // 首页
  'home-clickGoodsType': {
    id: 'home-clickGoodsType',
    desc: '首页点击商品类型',
  },
  'home-clickBanner': {
    id: 'home-clickBanner',
    desc: '首页点击顶部banner',
  },
  'home-clickBusinessEntry': {
    id: 'home-clickBusinessEntry',
    desc: '首页点击业务入口',
  },
  'home-clickFloorBanner': {
    id: 'home-clickFloorBanner',
    desc: '首页点击楼层banner',
  },
  'home-clickFloorGoods': {
    id: 'home-clickFloorGoods',
    desc: '首页点击楼层商品',
  },

  // 商品列表页
  'goodsList-clickGoods': {
    id: 'goodsList-clickGoods',
    desc: '商品列表页点击商品',
  },

  // 商品详情页
  'goodsDetail-clickRentPopup': {
    id: 'goodsDetail-clickRentPopup',
    desc: '商品详情页点击选择商品规格',
  },
  'goodsDetail-clickConfirm': {
    id: 'goodsDetail-clickConfirm',
    desc: '商品详情页点击，立即租赁',
  },
  'goodsDetail-clickReceiveCoupon': {
    id: 'goodsDetail-clickReceiveCoupon',
    desc: '商品详情页点击领券',
  },
  'goodsDetail-clickActivity': {
    id: 'goodsDetail-clickActivity',
    desc: '商品详情页点击活动',
  },
  'goodsDetail-clickGuarantee': {
    id: 'goodsDetail-clickGuarantee',
    desc: '商品详情页点击查品牌保障',
  },
  'goodsDetail-clickRecommendGoods': {
    id: 'goodsDetail-clickRecommendGoods',
    desc: '商品详情页点击热门推荐中商品',
  },
  'goodsDetail-clickTab': {
    id: 'goodsDetail-clickTab',
    desc: '商品详情页点击租赁说明商品详情售后说明tap',
  },
  'goodsDetail-showServiceConsultationDialog': {
    id: 'goodsDetail-showServiceConsultationDialog',
    desc: '点击客服显示在线咨询和客服电话弹出框',
  },

  // 订单提交页面
  'orderSubmit-clickSubmit': {
    id: 'orderSubmit-clickSubmit',
    desc: '确认订单页面点击提交',
  },
  'orderSubmit-saveInfo': {
    id: 'orderSubmit-saveInfo',
    desc: '确认订单页面保存信息',
  },
  // 续租页面
  'reletOrder-clickConfirm': {
    id: 'reletOrder-clickConfirm',
    desc: '续租页面点击提交',
  },
};
// 上传formId
export function uploadFormId(location, formId, triggerType) {
  console.log('uploadFormId location = ' + location + ', formId = ' + formId + ', triggerType = ' + triggerType);
  if (!location || !formId) {
    console.log('uploadFormId no location or formId');
    return;
  }

  let aliUserId = '';
  let customerId = '';
  let userInfo = WuzhuUtil.userInfo;
  // console.log('uploadFormId WuzhuUtil.userInfo = ', userInfo);
  if (userInfo && userInfo.customerId) {
    aliUserId = userInfo.openId;
    customerId = userInfo.customerId;
  } else {
    userInfo = my.getStorageSync({
      key: 'userInfo',
    });
    if (userInfo && userInfo.data) {
      aliUserId = userInfo.data.openId;
      customerId = userInfo.data.customerId;
      WuzhuUtil.userInfo = userInfo.data;
    }
  }
  // console.log('uploadFormId userInfo = ', userInfo);
  // if (userInfo && userInfo.data) {
  //   let aliUserId = userInfo.data.openId;
  //   let customerId = userInfo.data.customerId;
  if (aliUserId && customerId) {
    let params = {
      locationNo: formLocationEnum[location].id, // 位置编号不能为空
      locationDescription: formLocationEnum[location].desc, // 位置描述不能为空
      formId: formId, // formId不能为空
      triggerType: triggerType || 'FORM', // 触发类型不能为空.FORM/TRADE
      customerId: customerId, // 客户ID不能为空
      aliUserId: aliUserId, // 支付宝用户ID不能为空
      noPath: true,
    };

    return new Promise(function(resolve, reject) {
      http
        .post('/messagecloud/api/template/upload/formId', params)
        .then(res => {
          console.log('uploadFormId res = ', res);
          resolve(res);
        })
        .catch(err => {
          console.log('uploadFormId err = ', err);
          reject(err);
        });
    });
  }
  // }
  console.log('uploadFormId no aliUserId or customerId, return');
}

// 文本风险识别
// https://docs.alipay.com/mini/api/text-identification
export function textRiskIdentification(text, textRiskScore, cbFunc) {
  console.log('textRiskIdentification text = ' + text + ', textRiskScore = ' + textRiskScore);
  my.textRiskIdentification({
    content: text,
    type: ['keyword', '0', '1', '2', '3'],
    success: res => {
      // 90以上是高风险，60~90是中风险；建议值，你们可以自己根据业务场景进行调整；
      // let tips = '返回值说明：\ntype - 目标内容文本识别到的类型：keyword 表示关键词、0 表示广告、1表示涉政、2表示涉黄、3表示低俗辱骂\n' +
      //   'hitKeywords -	仅当识别命中了 type 为 keyword 时，才会返回该字段。\n' +
      //   'score - 识别命中得分，最高分100分。仅当识别没有命中 keyword ，但入参中包含了广告或涉政或涉黄时，才会返回该字段。\n'
      // my.alert({
      //   title: 'ok',
      //   content: tips + JSON.stringify(res),
      // });
      console.log('textRiskIdentification res = ', res);
      let riskResult = 'PASSED';
      if (res && res.result) {
        for (const key in res.result) {
          let e = res.result[key];
          if (e.type == 'keyword') {
            if (e.hitKeywords && e.hitKeywords.length > 0) {
              riskResult = 'REJECTED';
              break;
            }
          } else {
            if (e.score >= textRiskScore) {
              riskResult = 'REJECTED';
              break;
            }
          }
        }
      }
      console.log('textRiskIdentification riskResult = ' + riskResult);
      if (cbFunc) {
        cbFunc(riskResult);
      }
    },
    fail: res => {
      my.alert({
        title: 'fail',
        content: JSON.stringify(res),
        success: () => {
          if (cbFunc) {
            cbFunc('PASSED');
          }
        },
      });
    },
  });
}
// 图片内容安全
// https://docs.alipay.com/mini/api/img_risk
export function imgRisk(imgUrl, cbFunc) {
  if (!imgUrl) {
    return;
  }
  my.ap.imgRisk({
    pid: Config.pid,
    appId: Config.appid,
    bizContext: { risk_type: 'img_risk', content: imgUrl },
    success: res => {
      // 500ms后通过任务ID再请求结果
      // console.log('imgRisk success res = ' + JSON.stringify(res));
      // console.log('imgRisk success res.riskResult = ' , JSON.parse(res.riskResult));
      // console.log('imgRisk success res.riskResult.typeof = ' , typeof(res.riskResult));
      let apply_id = JSON.parse(res.riskResult).apply_id;
      // console.log('imgRisk apply_id = ' + apply_id);
      imgRiskCallback(apply_id, 3, cbFunc);
    },
    fail: res => {
      my.alert({
        title: 'fail',
        content: JSON.stringify(res),
      });
    },
  });
}
// 图片内容安全回调
// https://docs.alipay.com/mini/api/ze6675
export function imgRiskCallback(apply_id, count, cbFunc) {
  console.log('imgRiskCallback apply_id = ' + apply_id + ', count = ' + count);
  let that = this;
  let retryCount = count - 1;
  if (retryCount < 0) {
    // my.alert({
    //   title: 'fail',
    //   content: '重试了3次，依然没有返回识别结果。需要重新提交审核任务。',
    // });
    if (cbFunc) {
      cbFunc(false);
    }
    return;
  }
  // my.showLoading();
  setTimeout(() => {
    my.ap.imgRiskCallback({
      pid: Config.pid,
      appId: Config.appid,
      bizContext: {
        risk_type: 'img_risk_result',
        apply_id: apply_id,
      },
      success(res) {
        // my.hideLoading();
        console.log('imgRiskCallback success res = ', res);
        let riskResult = JSON.parse(res.riskResult);
        console.log('imgRiskCallback success riskResult = ', riskResult);
        if (riskResult && riskResult.action != undefined && riskResult.action != '') {
          console.log('imgRiskCallback riskResult.action = ' + riskResult.action);
          if (riskResult.action == 'PASSED') {
            if (cbFunc) {
              cbFunc(true);
            }
          } else {
            if (cbFunc) {
              cbFunc(false);
            }
          }
        } else {
          imgRiskCallback(apply_id, retryCount, cbFunc);
        }
      },
      fail: res => {
        // my.hideLoading();
        // my.alert({
        //   title: 'fail',
        //   content: JSON.stringify(res),
        // });
        imgRiskCallback(apply_id, retryCount, cbFunc);
      },
    });
  }, 800);
}

// 小程序支付
// https://opendocs.alipay.com/mini/api/openapi-pay
export function myTradePay(tradeNO, orderStr, callback) {
  my.tradePay({
    tradeNO: tradeNO,
    orderStr: orderStr, //完整的支付参数拼接成的字符串，从服务端获取
    success: res => {
      console.log('tradePay res = ', res);
      let params = {
        uniqueIdenty: 'my.tradePay',
        type: '19',
        requestParam: tradeNO || orderStr,
        responseParam: JSON.stringify(res),
        status: res && res.resultCode == '9000' ? '1' : '2', // 状态：1成功2失败
        logSource: '0', // 请求发起来源 0:前端发起；1=后端发起
      };
      uploadThirdInterfaceLog(params);

      let resultCode = res.resultCode + '';
      if (resultCode == '9000' || resultCode == '8000' || resultCode == '6004') {
        my.showLoading({
          content: '查询支付结果中',
        });
        if (callback) {
          callback(resultCode);
        }
      } else if (resultCode == '4000') {
        my.showToast({
          content: '支付失败',
        });
      } else if (resultCode == '6001') {
        my.showToast({
          content: '你已取消支付',
        });
      } else {
        my.showLoading({
          content: '查询支付结果中',
        });
        if (callback) {
          callback(resultCode);
        }
      }
    },
    fail: res => {
      console.log('tradePay fail');
      my.alert({
        content: JSON.stringify(res),
      });
    },
  });
}

// 预览pdf格式的文件，目前只支持pdf
// https://opendocs.alipay.com/mini/api/mwpprc
export function openDocument(url) {
  my.showLoading();
  let isPdfEnd = Utils.confirmEnding(url, '.pdf');
  if (!isPdfEnd) {
    url += '&xxx.pdf';
  }
  console.log('openDocument url:', url);
  my.downloadFile({
    // 因为iOS和android底层差异，iOS需要在链接后面加上.pdf后缀名才能正常预览
    url: url,
    success({ apFilePath }) {
      console.log('downloadFile success apFilePath:', apFilePath);
      my.hideLoading();
      my.openDocument({
        filePath: apFilePath,
        fileType: 'pdf',
        success: res => {
          console.log('open document success');
        },
        fail: res => {
          console.log('open document fail');
          my.showToast({
            content: '打开文件失败，请稍后重试',
          });
        },
      });
    },
    fail(error) {
      console.log('downloadFile error:', error);
      my.hideLoading();
    },
  });
}

export function scanStoreQrCode(app) {
  my.ap.navigateToAlipayPage({
    appCode: 'alipayScan',
    success: res => {
      app.globalData.entryByScanStoreQrCode = true;
      console.log('alipayScan success res = ', res);
    },
    fail: res => {
      console.log('alipayScan fail res = ', res);
      my.alert({ content: '失败：' + JSON.stringify(res) });
    },
  });

  // my.scan({
  //   scanType: ['qrCode','barCode'],
  //   success: (res) => {
  //     console.log('scan res = ', res);
  //     try {
  //       // 解析返回结果，如果appid不同，则不能跳转。否则如果有storeCode且fromStoreQr=true，则跳转到列表页面
  //       let url = decodeURIComponent(res.code);
  //       console.log('sacn url = ' + url);
  //       // let appId = url.split('appId=')[1].split('&page=')[0];
  //       // let page = url.split('page=')[1].split('&query=')[0];
  //       let query = url.split('&query=')[1];
  //       let appId = Utils.getValueFromStr(url.split('?')[1], 'appId');
  //       let page = Utils.getValueFromStr(url, 'page');
  //       // let query = getValueFromStr(url, 'query');
  //       let path = page + '?' + query;
  //       console.log('page = ' + page);
  //       console.log('appId = ' + appId);
  //       console.log('query = ' + query);
  //       console.log('path = ' + path);
  //       if (appId != Config.appid) {
  //         my.alert({content: '无效的二维码(error id)，仅能识别当前商户下的门店二维码，请联系当前商户'});
  //         return;
  //       } else {
  //         console.log('same appId, go to next');
  //       }
  //       // my.navigateToMiniProgram({
  //       //   appId: appId,	// 要跳转的目标小程序appId
  //       //   path: path,	// 打开的页面路径，如果为空则打开首页
  //       //   extraData: '',	// 需要传递给目标小程序的数据
  //       //   success: (res) => {
  //       //     console.log('navigateToMiniProgram ok.' + JSON.stringify(res))
  //       //   },
  //       //   fail: (res) => {
  //       //     console.log('navigateToMiniProgram fail.' + JSON.stringify(res))
  //       //   }
  //       // });
  //       // return;
  //       let storeCode = '';
  //       let source =  '';
  //       if (query) {
  //         storeCode = Utils.getValueFromStr(query, 'storeCode');
  //         source = Utils.getValueFromStr(query, 'source');
  //       }
  //       console.log('storeCode = ' + storeCode);
  //       console.log('source = ' + source);
  //       if (storeCode) {
  //         gotoStoreGoodsList(app, storeCode, source);
  //       } else {
  //         my.alert({content: '无效的二维码(no store)，仅能识别当前商户下的门店二维码，请联系当前商户'});
  //         return;
  //       }
  //     } catch (error) {
  //       console.log('scan error = ', error);
  //       my.alert({content: '无效的二维码(error)，仅能识别当前商户下的门店二维码，请联系当前商户'});
  //     }
  //   },
  // });
}

export function gotoStoreGoodsList(app, storeCode, source) {
  app.storeCode = storeCode;
  app.fromStoreQr = true;
  http._storeCode = storeCode;
  if (source) {
    http._source = source;
    app.globalData.source = source;
  }
  my.switchTab({
    url: '/pages/GoodsList/GoodsList',
  });
}

// 生成分享二维码
export async function getQrCodeUrl(params) {
  console.log('getQrCodeUrl params:', params);
  my.showLoading();
  let url = 'storeManager/generateCustomerRecomStoreQrcodeUrl?' + params;
  let res = await http.get(url);
  console.log('getQrCodeUrl res = ', res);
  my.hideLoading();
  if (res && res.code == '00' && res.data) {
    return res.data;
  } else {
    my.alert({
      content: res && res.msg,
    });
    return;
  }
}

// 处理租期
export function handleRentCalculationDesc(data) {
  console.log(data);
  const payNodeStr = {
    byOrder: '期',
    byMonth: '月',
    byTerm: '期',
  };
  if (data.payNode) {
    return payNodeStr[data.payNode];
  } else if (data.rentCalculation) {
    return data.rentCalculation === 'month' ? '月' : '天';
  }
  return '';
}
// 处理结算方式
export function getLeaseStyleDesc(data) {
  const payNodeStr = {
    byOrder: '下单支付',
    byMonth: '按月支付',
    byTerm: `按期支付，每期${data.daysPerTerm}天`,
  };
  return payNodeStr[data.payNode];
}
